The use of computer networks to store data and provide information to users is increasingly common. In fact, in many cases it may be necessary for a computer to be connected to a specific network to retrieve data desired or needed by a user. To connect to a specific network, a user at a client computer may utilize a network connection, such as the Internet, to connect to a computer belonging to the network.
The Internet is a loosely organized network of computers spanning the globe. Client computers, such as home computers, can connect to other clients and servers on the Internet through a local or regional Internet Service Provider (“ISP”) that further connects to larger regional ISPs or directly to one of the Internet's “backbones.” Regional and national backbones are interconnected through long range data transport connections such as satellite relays and undersea cables. Through these layers of interconnectivity, each computer connected to the Internet can connect to every other (or at least a large percentage) of other computers on the Internet. Utilizing the Internet, a user may connect to any of the networks within the Internet.
The arrangement of the Internet, however, presents a whole host of security concerns. These concerns revolve mainly around the fact that communications between a client computer and a server computer residing in a remote network may travel through a wide variety of other computers and networks before arriving at their eventual destinations. If these communications are not secured, they are readily accessible to anyone with a basic understanding of network communication protocols. To alleviate these security concerns, a virtual private network or VPN may be established between a client computer and another network. A VPN may allow private and secure communications between computers over a public network, while maintaining privacy through the use of a tunneling protocol and security procedures. These tunneling protocols allow traffic to be encrypted at the edge of one network or at an originating computer, moved over a public network like any other data, and then decrypted when it reaches a remote network or receiving computer. This encrypted traffic acts like it is in a tunnel between the two networks or computers: even if an attacker can see the traffic, they cannot read it, and they cannot change the traffic without the changes being seen by the receiving party and therefore being rejected.
VPNs are similar to wide area networks (WAN), but the key feature of VPNs is that they are able to use public networks like the Internet rather than rely on expensive, private leased lines. At they same time, VPNs have the same security and encryption features as a private network, while adding the advantage of the economies of scale and remote accessibility of large public networks.
VPNs today are set up a variety of ways, and can be built over ATM, frame relay, and X.25 technologies. However, the most popular current method is to deploy IP-based VPNs, which offer more flexibility and ease of connectivity. Since most corporate intranets use IP or Web technologies, IP-VPNs can more transparently extend these capabilities over a wide network. An IP-VPN link can be set up anywhere in the world between two endpoints, and the IP network automatically handles the traffic routing.
A VPN, however, is not without its flaws. First of all, to establish a VPN, both computers must utilize identical VPN protocols. As there are a wide variety of VPN protocols in use, such as PPTP, IPsec, L2TP etc. this is by no means guaranteed. If identical protocols are not originally on one or more of the computers, identical protocols must be installed on both of these systems before a VPN may be established.
Additionally, even if the computers are running the same protocol, this protocol may still have to be manually setup and configured. In many cases, every time a remote user wishes to establish a VPN with a computer over an existing network he must bring up the VPN protocol he wishes to use and properly configure it to work with the remote computer or network he wishes to access.
These installation and configuration issues may present problems to someone who is not well versed in the area of network protocols, and may even present problems for those who are familiar with these protocols, as typically a remote user must configure his computer without access to the gateway to which he wishes to connect.
Even more problematic, however, is that setting up a VPN still presents security issues. Almost universally, a gateway at a remote network is not going to establish a VPN with a random remote computer, In most cases, the remote gateway requires a username and a password before it will establish a VPN connection. This username and password is sent from the remote user in an unsecured form, or encrypted using a weak encryption algorithm. As this username and password are easily snooped by malicious users of a public network, a security hole exists within the very process of trying to create a VPN to provide greater security.
Thus, a need exists for more secure methods and systems for establishing a secure connection between computers which require minimum amounts of manual configuration.